Setup

Load libraries and data. Shorten column names to make it manageable.

## ── Attaching packages ─────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2     ✓ purrr   0.3.4
## ✓ tibble  3.0.3     ✓ dplyr   1.0.1
## ✓ tidyr   1.1.1     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   `Num Fields Filled out` = col_double(),
##   `Include?` = col_double(),
##   `Valid Response Count` = col_double()
## )
## See spec(...) for full column specifications.

Convert text to tidy text

What DAO(s) do you work for?

Automatically lowercases, and converts strings to one-token-per-row format to show frequencies and basic bar charts.

This will be done for each column (question), as a starting point.

## Joining, by = "word"

Cleaning data to identify DAOs people work in

To fully answer What DAO(s) do you work for?, we have to isolate all words and

# Unique DAO names

# marrow, mstable, cre8rdao, badger, raidguild, metagame, metafactory, defiant pixel, nfdao, punks, cedgedao, sushi, dalten, metacartel, metacartel ventures, bankless, tally, friends, pleasrdao, seed, forefront, fingerprints, gitcoin, superrare, makerdao, dorg, railgun, mycryptoheroes, daohaus, uber haus, hero dao, indexcoop, dao square, rarible dao, genesis dao, dappnode, radiologex, gridology, yam, alchemy, 1hive, pharo dao, pooltogether, commitpool, machi x dao, peerion dao, doingud, uniswap, gryffone, harmony dao, buidlguidl, airswap.io, aave grants, sourcecred, good ghosting, proof of beauty hash, meebits dao, alas dao, buzzed bear hideout, mcn ventures, fraktal dao, decrypt, synthetix, balancer, flow community, daosquare, aladdindao, sandao, compound, gamedao, halodao, qidao, soudao, curve dao, coordinape, nash dao, discord, ocean, parity, sporkdao, epns, scribedao, trips community, daostack, opolis, aragon, renaissancedao, rabbit hole, cryptex, olympus, mirror

daos_work_long <- daos_work_tbl %>%
    unnest_tokens(word, text) %>%
    anti_join(stop_words) %>% 
    count(word, sort = TRUE)
## Joining, by = "word"
daos_work_long$bin <- NA

daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "cre8")==TRUE), "cre8rdao", "NA")
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mstable")==TRUE), "mstable", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "marrow")==TRUE), "marrow dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "badger")==TRUE), "badger dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "raid")==TRUE), "raid guild", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "metagame")==TRUE), "metagame", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "metaf")==TRUE), "metafactory", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "defiant")==TRUE), "defiant pixel society", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "nfd")==TRUE), "nfdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "punks")==TRUE), "punks dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "cedge")==TRUE), "cedge dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sushi")==TRUE), "sushi protocol", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dal")==TRUE), "dalten collective", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "ventures")==TRUE), "metacartel ventures", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "metacartel")==TRUE), "metacartel", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "bank")==TRUE), "bankless dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "tally")==TRUE), "tally", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "friend")==TRUE), "friends with benefits", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "fwb")==TRUE), "friends with benefits", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "pleas")==TRUE), "pleasrdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "seed")==TRUE), "seed club", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "fore")==TRUE), "forefront", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "finger")==TRUE), "fringerprints", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gitc")==TRUE), "gitcoin dao / gitcoin", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gtc")==TRUE), "gitcoin dao / gitcoin", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "super")==TRUE), "superrare dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daomaker")==TRUE), "daomaker", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "maker")==TRUE), "makerdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mkrdao")==TRUE), "makerdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "makedaos")==TRUE), "makerdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dorg")==TRUE), "dOrg", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rail")==TRUE), "railgun", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mycryptoh")==TRUE), "mycryptoheroes", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daoh")==TRUE), "daohaus", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "uber")==TRUE), "uber haus", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "hero_")==TRUE), "hero dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "index")==TRUE), "index coop", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "square")==TRUE), "dao square", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rally")==TRUE), "rally.io", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rarible")==TRUE), "rarible dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "genosis")==TRUE), "genesis dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dappnode")==TRUE), "dappnode", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "radiologex")==TRUE), "radiologex", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gridology")==TRUE), "gridology", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "yam")==TRUE), "yam", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "alchemy")==TRUE), "alchemy", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "1hive")==TRUE), "1hive", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "pharo")==TRUE), "pharo dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "poolt")==TRUE), "pooltogether", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "commitpool")==TRUE), "commitpool", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "machix")==TRUE), "machi x dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "peerion")==TRUE), "peerion dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "dxdao")==TRUE), "dxdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "karma")==TRUE), "karma dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "doingud")==TRUE), "doingud", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "unis")==TRUE), "uniswap", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gryffone")==TRUE), "gryffone", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "harmony")==TRUE), "harmony dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "buidl")==TRUE), "buidlguidl", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "airs")==TRUE), "airswap.io", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aave")==TRUE), "aave grants", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sourcecred")==TRUE), "sourcecred", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "ghosting")==TRUE), "goodghosting", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "beauty")==TRUE), "historians dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "historian")==TRUE), "historians dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "meebit")==TRUE), "meebits dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "alas")==TRUE), "alas dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "buzz")==TRUE), "buzzed bear hideout", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mcn")==TRUE), "mcn ventures", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "fraktal")==TRUE), "fraktal dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "decrypt")==TRUE), "decrypt", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "pollen")==TRUE), "pollen dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "synthetix")==TRUE), "synthetix", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "balancer")==TRUE), "balancer", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "flow")==TRUE), "flow community", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daosquare")==TRUE), "daosquare", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daosuqre")==TRUE), "daosquare", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aladdindao")==TRUE), "aladdindao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aladdin")==TRUE), "aladdindao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sandao")==TRUE), "sandao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "compound")==TRUE), "compound", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "gamedao")==TRUE), "gamedao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "halo")==TRUE), "halodao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "qidao")==TRUE), "qidao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "soudao")==TRUE), "soudao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "curve")==TRUE), "curve dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "coordinape")==TRUE), "coordinape", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "nash")==TRUE), "nash dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "discord")==TRUE), "discord", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "ocean")==TRUE), "ocean dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "parity")==TRUE), "parity", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "sporkdao")==TRUE), "sporkdao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "epns")==TRUE), "ethereum push notification service", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "scribedao")==TRUE), "scribeddao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "trips")==TRUE), "trips community", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "daostack")==TRUE), "daostack", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "opolis")==TRUE), "opolis", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "aragon")==TRUE), "aragon", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "renaissancedao")==TRUE), "renaissancedao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "rabbhithole")==TRUE), "rabbithole", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "cryptex")==TRUE), "cryptex.finance", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "olympus")==TRUE), "olympus dao", daos_work_long$bin)
daos_work_long$bin <- if_else((str_detect(daos_work_long$word, "mirror")==TRUE), "mclubdao", daos_work_long$bin)

daos_work_long %>%
    filter(bin != "NA") %>%
    select(bin, n) %>%
    ggplot(aes(x = reorder(bin, n), y = n, fill = bin)) +
    geom_col() +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.x = element_text(angle = 45, hjust = 1)
    ) +
    labs(
        x = "DAOs / Protocols",
        y = "Number of Responses"
    )

What DAO(s) do you work in?

Manual data munging needed.

What city are you based in?

## Joining, by = "word"

What kind of work do you do? (eg ops, coder, design, etc)

## Joining, by = "word"

What kind of work do you do? (What role do you play?) (better visual)

Cleaner way to present data. More manual process. Split string by comma, unnest, then mnaully add duplicates, then manually delete, then visualize.

How are tasks assigned?

## Joining, by = "word"

What is your day to day like?

## Joining, by = "word"

Do you have a DAO version of “resume”?

## Joining, by = "word"

Are there any opportunities to improve the way your work is coordinated?

## Joining, by = "word"

What web3 tools are used to coordinate/allocate resources?

## Joining, by = "word"

How much do you make in USD equivilent per month?

Is your income stability a priority for you?

## Joining, by = "word"

Are DAOs your primary source of income?

NOTE: We want to keep stop words like ‘no’ or ‘yes’ here.

How do you handle token volatility?

## Joining, by = "word"

Where do you get health insurance?

Are you saving for retirement?

How do you do compliance with local taxation/legal requirements for workers?

## Joining, by = "word"

What do you do if there is a dispute between yourself and the DAO?

## Joining, by = "word"

How do you manage visas to travel/work abroad?

## Joining, by = "word"

What is the most different/interesting thing about working for a DAO to you?

## Joining, by = "word"

What is your favorite part of working for a DAO?

## Joining, by = "word"

What is your least favorite part of working for a DAO?

## Joining, by = "word"

Is there anything we didnt ask you want to tell us?

## Joining, by = "word"

Are there any opportunities to improve the way you are compensated?

## Joining, by = "word"

What comms tools does your DAO use to coordinate?

## Joining, by = "word"

The majority of your compensation is from (i.e., Source of Compensation)

How much savings do you have?

Most of your savings is in

How does your DAO handle token volatility?

## Joining, by = "word"

How much of your comp is in DAO Tokens vs stablecoins/ETH?

Response options for this question are too unclear to make sense. Will prioritize other charts then come back to this one with sufficient time.

## Joining, by = "word"

Num Fields Filled out

Include

Valid Response Count

Testing

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.